// Generated from E:/Dev-workspace/Antlr4/antlr4-sql-demo/src/main/resources\SQL.g4 by ANTLR 4.8
package com.test.antlr4.sql.core;
import org.antlr.v4.runtime.tree.ParseTreeListener;

/**
 * This interface defines a complete listener for a parse tree produced by
 * {@link SQLParser}.
 */
public interface SQLListener extends ParseTreeListener {
	/**
	 * Enter a parse tree produced by {@link SQLParser#tableName}.
	 * @param ctx the parse tree
	 */
	void enterTableName(SQLParser.TableNameContext ctx);
	/**
	 * Exit a parse tree produced by {@link SQLParser#tableName}.
	 * @param ctx the parse tree
	 */
	void exitTableName(SQLParser.TableNameContext ctx);
	/**
	 * Enter a parse tree produced by {@link SQLParser#column_name}.
	 * @param ctx the parse tree
	 */
	void enterColumn_name(SQLParser.Column_nameContext ctx);
	/**
	 * Exit a parse tree produced by {@link SQLParser#column_name}.
	 * @param ctx the parse tree
	 */
	void exitColumn_name(SQLParser.Column_nameContext ctx);
	/**
	 * Enter a parse tree produced by {@link SQLParser#function_name}.
	 * @param ctx the parse tree
	 */
	void enterFunction_name(SQLParser.Function_nameContext ctx);
	/**
	 * Exit a parse tree produced by {@link SQLParser#function_name}.
	 * @param ctx the parse tree
	 */
	void exitFunction_name(SQLParser.Function_nameContext ctx);
	/**
	 * Enter a parse tree produced by {@link SQLParser#selectStatement}.
	 * @param ctx the parse tree
	 */
	void enterSelectStatement(SQLParser.SelectStatementContext ctx);
	/**
	 * Exit a parse tree produced by {@link SQLParser#selectStatement}.
	 * @param ctx the parse tree
	 */
	void exitSelectStatement(SQLParser.SelectStatementContext ctx);
	/**
	 * Enter a parse tree produced by {@link SQLParser#selectElements}.
	 * @param ctx the parse tree
	 */
	void enterSelectElements(SQLParser.SelectElementsContext ctx);
	/**
	 * Exit a parse tree produced by {@link SQLParser#selectElements}.
	 * @param ctx the parse tree
	 */
	void exitSelectElements(SQLParser.SelectElementsContext ctx);
	/**
	 * Enter a parse tree produced by {@link SQLParser#tableSources}.
	 * @param ctx the parse tree
	 */
	void enterTableSources(SQLParser.TableSourcesContext ctx);
	/**
	 * Exit a parse tree produced by {@link SQLParser#tableSources}.
	 * @param ctx the parse tree
	 */
	void exitTableSources(SQLParser.TableSourcesContext ctx);
	/**
	 * Enter a parse tree produced by {@link SQLParser#whereClause}.
	 * @param ctx the parse tree
	 */
	void enterWhereClause(SQLParser.WhereClauseContext ctx);
	/**
	 * Exit a parse tree produced by {@link SQLParser#whereClause}.
	 * @param ctx the parse tree
	 */
	void exitWhereClause(SQLParser.WhereClauseContext ctx);
	/**
	 * Enter a parse tree produced by {@link SQLParser#logicExpression}.
	 * @param ctx the parse tree
	 */
	void enterLogicExpression(SQLParser.LogicExpressionContext ctx);
	/**
	 * Exit a parse tree produced by {@link SQLParser#logicExpression}.
	 * @param ctx the parse tree
	 */
	void exitLogicExpression(SQLParser.LogicExpressionContext ctx);
	/**
	 * Enter a parse tree produced by {@link SQLParser#groupByCaluse}.
	 * @param ctx the parse tree
	 */
	void enterGroupByCaluse(SQLParser.GroupByCaluseContext ctx);
	/**
	 * Exit a parse tree produced by {@link SQLParser#groupByCaluse}.
	 * @param ctx the parse tree
	 */
	void exitGroupByCaluse(SQLParser.GroupByCaluseContext ctx);
	/**
	 * Enter a parse tree produced by {@link SQLParser#havingCaluse}.
	 * @param ctx the parse tree
	 */
	void enterHavingCaluse(SQLParser.HavingCaluseContext ctx);
	/**
	 * Exit a parse tree produced by {@link SQLParser#havingCaluse}.
	 * @param ctx the parse tree
	 */
	void exitHavingCaluse(SQLParser.HavingCaluseContext ctx);
	/**
	 * Enter a parse tree produced by {@link SQLParser#orderByClause}.
	 * @param ctx the parse tree
	 */
	void enterOrderByClause(SQLParser.OrderByClauseContext ctx);
	/**
	 * Exit a parse tree produced by {@link SQLParser#orderByClause}.
	 * @param ctx the parse tree
	 */
	void exitOrderByClause(SQLParser.OrderByClauseContext ctx);
	/**
	 * Enter a parse tree produced by {@link SQLParser#limitClause}.
	 * @param ctx the parse tree
	 */
	void enterLimitClause(SQLParser.LimitClauseContext ctx);
	/**
	 * Exit a parse tree produced by {@link SQLParser#limitClause}.
	 * @param ctx the parse tree
	 */
	void exitLimitClause(SQLParser.LimitClauseContext ctx);
	/**
	 * Enter a parse tree produced by {@link SQLParser#orderByExpression}.
	 * @param ctx the parse tree
	 */
	void enterOrderByExpression(SQLParser.OrderByExpressionContext ctx);
	/**
	 * Exit a parse tree produced by {@link SQLParser#orderByExpression}.
	 * @param ctx the parse tree
	 */
	void exitOrderByExpression(SQLParser.OrderByExpressionContext ctx);
	/**
	 * Enter a parse tree produced by {@link SQLParser#groupByItem}.
	 * @param ctx the parse tree
	 */
	void enterGroupByItem(SQLParser.GroupByItemContext ctx);
	/**
	 * Exit a parse tree produced by {@link SQLParser#groupByItem}.
	 * @param ctx the parse tree
	 */
	void exitGroupByItem(SQLParser.GroupByItemContext ctx);
	/**
	 * Enter a parse tree produced by {@link SQLParser#logicalOperator}.
	 * @param ctx the parse tree
	 */
	void enterLogicalOperator(SQLParser.LogicalOperatorContext ctx);
	/**
	 * Exit a parse tree produced by {@link SQLParser#logicalOperator}.
	 * @param ctx the parse tree
	 */
	void exitLogicalOperator(SQLParser.LogicalOperatorContext ctx);
	/**
	 * Enter a parse tree produced by {@link SQLParser#comparisonOperator}.
	 * @param ctx the parse tree
	 */
	void enterComparisonOperator(SQLParser.ComparisonOperatorContext ctx);
	/**
	 * Exit a parse tree produced by {@link SQLParser#comparisonOperator}.
	 * @param ctx the parse tree
	 */
	void exitComparisonOperator(SQLParser.ComparisonOperatorContext ctx);
	/**
	 * Enter a parse tree produced by {@link SQLParser#value}.
	 * @param ctx the parse tree
	 */
	void enterValue(SQLParser.ValueContext ctx);
	/**
	 * Exit a parse tree produced by {@link SQLParser#value}.
	 * @param ctx the parse tree
	 */
	void exitValue(SQLParser.ValueContext ctx);
	/**
	 * Enter a parse tree produced by {@link SQLParser#decimalLiteral}.
	 * @param ctx the parse tree
	 */
	void enterDecimalLiteral(SQLParser.DecimalLiteralContext ctx);
	/**
	 * Exit a parse tree produced by {@link SQLParser#decimalLiteral}.
	 * @param ctx the parse tree
	 */
	void exitDecimalLiteral(SQLParser.DecimalLiteralContext ctx);
	/**
	 * Enter a parse tree produced by {@link SQLParser#textLiteral}.
	 * @param ctx the parse tree
	 */
	void enterTextLiteral(SQLParser.TextLiteralContext ctx);
	/**
	 * Exit a parse tree produced by {@link SQLParser#textLiteral}.
	 * @param ctx the parse tree
	 */
	void exitTextLiteral(SQLParser.TextLiteralContext ctx);
	/**
	 * Enter a parse tree produced by the {@code selectColumnElement}
	 * labeled alternative in {@link SQLParser#selectElement}.
	 * @param ctx the parse tree
	 */
	void enterSelectColumnElement(SQLParser.SelectColumnElementContext ctx);
	/**
	 * Exit a parse tree produced by the {@code selectColumnElement}
	 * labeled alternative in {@link SQLParser#selectElement}.
	 * @param ctx the parse tree
	 */
	void exitSelectColumnElement(SQLParser.SelectColumnElementContext ctx);
	/**
	 * Enter a parse tree produced by the {@code selectFunctionElement}
	 * labeled alternative in {@link SQLParser#selectElement}.
	 * @param ctx the parse tree
	 */
	void enterSelectFunctionElement(SQLParser.SelectFunctionElementContext ctx);
	/**
	 * Exit a parse tree produced by the {@code selectFunctionElement}
	 * labeled alternative in {@link SQLParser#selectElement}.
	 * @param ctx the parse tree
	 */
	void exitSelectFunctionElement(SQLParser.SelectFunctionElementContext ctx);
	/**
	 * Enter a parse tree produced by {@link SQLParser#fullColumnName}.
	 * @param ctx the parse tree
	 */
	void enterFullColumnName(SQLParser.FullColumnNameContext ctx);
	/**
	 * Exit a parse tree produced by {@link SQLParser#fullColumnName}.
	 * @param ctx the parse tree
	 */
	void exitFullColumnName(SQLParser.FullColumnNameContext ctx);
	/**
	 * Enter a parse tree produced by the {@code aggregateFunctionCall}
	 * labeled alternative in {@link SQLParser#functionCall}.
	 * @param ctx the parse tree
	 */
	void enterAggregateFunctionCall(SQLParser.AggregateFunctionCallContext ctx);
	/**
	 * Exit a parse tree produced by the {@code aggregateFunctionCall}
	 * labeled alternative in {@link SQLParser#functionCall}.
	 * @param ctx the parse tree
	 */
	void exitAggregateFunctionCall(SQLParser.AggregateFunctionCallContext ctx);
	/**
	 * Enter a parse tree produced by {@link SQLParser#aggregateWindowedFunction}.
	 * @param ctx the parse tree
	 */
	void enterAggregateWindowedFunction(SQLParser.AggregateWindowedFunctionContext ctx);
	/**
	 * Exit a parse tree produced by {@link SQLParser#aggregateWindowedFunction}.
	 * @param ctx the parse tree
	 */
	void exitAggregateWindowedFunction(SQLParser.AggregateWindowedFunctionContext ctx);
	/**
	 * Enter a parse tree produced by {@link SQLParser#functionArg}.
	 * @param ctx the parse tree
	 */
	void enterFunctionArg(SQLParser.FunctionArgContext ctx);
	/**
	 * Exit a parse tree produced by {@link SQLParser#functionArg}.
	 * @param ctx the parse tree
	 */
	void exitFunctionArg(SQLParser.FunctionArgContext ctx);
	/**
	 * Enter a parse tree produced by {@link SQLParser#functionArgs}.
	 * @param ctx the parse tree
	 */
	void enterFunctionArgs(SQLParser.FunctionArgsContext ctx);
	/**
	 * Exit a parse tree produced by {@link SQLParser#functionArgs}.
	 * @param ctx the parse tree
	 */
	void exitFunctionArgs(SQLParser.FunctionArgsContext ctx);
	/**
	 * Enter a parse tree produced by {@link SQLParser#uid}.
	 * @param ctx the parse tree
	 */
	void enterUid(SQLParser.UidContext ctx);
	/**
	 * Exit a parse tree produced by {@link SQLParser#uid}.
	 * @param ctx the parse tree
	 */
	void exitUid(SQLParser.UidContext ctx);
}